Define Large Subreddits

large_subreddits <- pronoun_use_by_score_group %>%
  filter(
    score_group == "z1000+"
  ) %>% select(subreddit)
Error in eval(lhs, parent, parent) : 
  object 'pronoun_use_by_score_group' not found

Density plots of pronoun use

library(plotly)
plot_score_group = function (a,pronoun) {
  ggplotly(ggplot(a,aes_string(x = paste("contains_",tolower(pronoun),sep=""),color = "score_group")) + geom_density()+
             facet_wrap(~topic_level1)
             )}
large_sub_pronoun_use <- pronoun_use_by_score_group %>%
  filter(
    !subreddit %in% large_subreddits
  ) 
plot_score_group(large_sub_pronoun_use,"I") 
Groups with fewer than two data points have been dropped.Groups with fewer than two data points have been dropped.Groups with fewer than two data points have been dropped.

plot_score_group(large_sub_pronoun_use,"We") 
Groups with fewer than two data points have been dropped.Groups with fewer than two data points have been dropped.Groups with fewer than two data points have been dropped.

plot_score_group(large_sub_pronoun_use,"They")
Groups with fewer than two data points have been dropped.Groups with fewer than two data points have been dropped.Groups with fewer than two data points have been dropped.
agg_pronoun_use <- pronoun_use_by_score_group %>%
  filter(grepl("Sports", all_topics)) %>%
  group_by(score_group,subreddit,all_topics) %>%
  summarise(
    agg_i      = sum(num_comments*ZNcontains_i     )/sum(num_comments),
    agg_me     = sum(num_comments*ZNcontains_me    )/sum(num_comments),
    agg_we     = sum(num_comments*ZNcontains_we    )/sum(num_comments),
    agg_us     = sum(num_comments*ZNcontains_us    )/sum(num_comments),
    agg_they   = sum(num_comments*ZNcontains_they  )/sum(num_comments),
    agg_them   = sum(num_comments*ZNcontains_them  )/sum(num_comments),
    agg_you    = sum(num_comments*ZNcontains_you   )/sum(num_comments),
    
    total_comments = sum(num_comments),
    
    unweighted_i      =  mean(ZNcontains_i   ),
    unweighted_me     =  mean(ZNcontains_me  ),
    unweighted_we     =  mean(ZNcontains_we  ),
    unweighted_us     =  mean(ZNcontains_us  ),
    unweighted_they   =  mean(ZNcontains_they),
    unweighted_them   =  mean(ZNcontains_them),
    unweighted_you    =  mean(ZNcontains_you )
            
    
  )# %>% arrange(t1_t2) 
plot_categories_score_groups = function(agg_pronoun_use,pronoun){
ggplotly(
  ggplot(agg_pronoun_use, aes_string(x = "score_group", y = paste("agg_",tolower(pronoun),sep=""), name = "subreddit", color = "all_topics")) +
  geom_point(aes(size = total_comments))
)
  }
plot_categories_score_groups(agg_pronoun_use,"I")

plot_categories_score_groups(agg_pronoun_use,"Me")

plot_categories_score_groups(agg_pronoun_use,"We")

plot_categories_score_groups(agg_pronoun_use,"Us")

plot_categories_score_groups(agg_pronoun_use,"They")

plot_categories_score_groups(agg_pronoun_use,"Them")

plot_categories_score_groups(agg_pronoun_use,"You")

Analysis by score (not group)

Base rates across subreddits

#for pronoun in c("individual", "collective")
ggplotly(
  ggplot(pronoun_source, aes_string(x = "score", y = "ZNcollective",
                                                 name = "subreddit")) + geom_smooth(aes(size = num_comments))
  )
`geom_smooth()` using method = 'loess' and formula 'y ~ x'

large subs

large_subreddits <- collective_pronoun_by_score %>%
  filter(
    score >1000, num_comments > 10
  ) %>% select(subreddit)
large_subreddits <- large_subreddits[,1,drop = TRUE]

POT6

Size of subreddit vs. score-pronoun relation

collective_pronoun_by_score %>%
  filter(score == 50) %>%
  ggplot(aes(num_comments,ZNcollective))+geom_point()+
  #geom_smooth()+
  scale_x_log10()+scale_y_continuous(limits = c(-100,250))+ facet_wrap(~ topic_level1)

LS0tCnRpdGxlOiAiMDNfc2NvcmVfZ3JvdXBfYW5hbHlzaXMiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KIyMgRGVmaW5lIExhcmdlIFN1YnJlZGRpdHMKCmBgYHtyfQpsYXJnZV9zdWJyZWRkaXRzIDwtIHByb25vdW5fdXNlX2J5X3Njb3JlX2dyb3VwICU+JQogIGZpbHRlcigKICAgIHNjb3JlX2dyb3VwID09ICJ6MTAwMCsiCiAgKSAlPiUgc2VsZWN0KHN1YnJlZGRpdCkKbGFyZ2Vfc3VicmVkZGl0cyA8LSBsYXJnZV9zdWJyZWRkaXRzWywxLGRyb3AgPSBUUlVFXQoKCmBgYAoKCiMjRGVuc2l0eSBwbG90cyBvZiBwcm9ub3VuIHVzZQoKYGBge3J9CmxpYnJhcnkocGxvdGx5KQoKcGxvdF9zY29yZV9ncm91cCA9IGZ1bmN0aW9uIChhLHByb25vdW4pIHsKICBnZ3Bsb3RseShnZ3Bsb3QoYSxhZXNfc3RyaW5nKHggPSBwYXN0ZSgiY29udGFpbnNfIix0b2xvd2VyKHByb25vdW4pLHNlcD0iIiksY29sb3IgPSAic2NvcmVfZ3JvdXAiKSkgKyBnZW9tX2RlbnNpdHkoKSsKICAgICAgICAgICAgIGZhY2V0X3dyYXAofnRvcGljX2xldmVsMSkKICAgICAgICAgICAgICl9CgoKCgoKCmxhcmdlX3N1Yl9wcm9ub3VuX3VzZSA8LSBwcm9ub3VuX3VzZV9ieV9zY29yZV9ncm91cCAlPiUKICBmaWx0ZXIoCiAgICAhc3VicmVkZGl0ICVpbiUgbGFyZ2Vfc3VicmVkZGl0cwogICkgCgoKcGxvdF9zY29yZV9ncm91cChsYXJnZV9zdWJfcHJvbm91bl91c2UsIkkiKSAKcGxvdF9zY29yZV9ncm91cChsYXJnZV9zdWJfcHJvbm91bl91c2UsIldlIikgCnBsb3Rfc2NvcmVfZ3JvdXAobGFyZ2Vfc3ViX3Byb25vdW5fdXNlLCJUaGV5IikKCgpgYGAKCmBgYHtyfQoKCgphZ2dfcHJvbm91bl91c2UgPC0gcHJvbm91bl91c2VfYnlfc2NvcmVfZ3JvdXAgJT4lCiAgZmlsdGVyKGdyZXBsKCJTcG9ydHMiLCBhbGxfdG9waWNzKSkgJT4lCiAgZ3JvdXBfYnkoc2NvcmVfZ3JvdXAsc3VicmVkZGl0LGFsbF90b3BpY3MpICU+JQogIHN1bW1hcmlzZSgKICAgIGFnZ19pICAgICAgPSBzdW0obnVtX2NvbW1lbnRzKlpOY29udGFpbnNfaSAgICAgKS9zdW0obnVtX2NvbW1lbnRzKSwKICAgIGFnZ19tZSAgICAgPSBzdW0obnVtX2NvbW1lbnRzKlpOY29udGFpbnNfbWUgICAgKS9zdW0obnVtX2NvbW1lbnRzKSwKICAgIGFnZ193ZSAgICAgPSBzdW0obnVtX2NvbW1lbnRzKlpOY29udGFpbnNfd2UgICAgKS9zdW0obnVtX2NvbW1lbnRzKSwKICAgIGFnZ191cyAgICAgPSBzdW0obnVtX2NvbW1lbnRzKlpOY29udGFpbnNfdXMgICAgKS9zdW0obnVtX2NvbW1lbnRzKSwKICAgIGFnZ190aGV5ICAgPSBzdW0obnVtX2NvbW1lbnRzKlpOY29udGFpbnNfdGhleSAgKS9zdW0obnVtX2NvbW1lbnRzKSwKICAgIGFnZ190aGVtICAgPSBzdW0obnVtX2NvbW1lbnRzKlpOY29udGFpbnNfdGhlbSAgKS9zdW0obnVtX2NvbW1lbnRzKSwKICAgIGFnZ195b3UgICAgPSBzdW0obnVtX2NvbW1lbnRzKlpOY29udGFpbnNfeW91ICAgKS9zdW0obnVtX2NvbW1lbnRzKSwKICAgIAogICAgdG90YWxfY29tbWVudHMgPSBzdW0obnVtX2NvbW1lbnRzKSwKICAgIAogICAgdW53ZWlnaHRlZF9pICAgICAgPSAgbWVhbihaTmNvbnRhaW5zX2kgICApLAogICAgdW53ZWlnaHRlZF9tZSAgICAgPSAgbWVhbihaTmNvbnRhaW5zX21lICApLAogICAgdW53ZWlnaHRlZF93ZSAgICAgPSAgbWVhbihaTmNvbnRhaW5zX3dlICApLAogICAgdW53ZWlnaHRlZF91cyAgICAgPSAgbWVhbihaTmNvbnRhaW5zX3VzICApLAogICAgdW53ZWlnaHRlZF90aGV5ICAgPSAgbWVhbihaTmNvbnRhaW5zX3RoZXkpLAogICAgdW53ZWlnaHRlZF90aGVtICAgPSAgbWVhbihaTmNvbnRhaW5zX3RoZW0pLAogICAgdW53ZWlnaHRlZF95b3UgICAgPSAgbWVhbihaTmNvbnRhaW5zX3lvdSApCiAgICAgICAgICAgIAogICAgCiAgKSMgJT4lIGFycmFuZ2UodDFfdDIpIApwbG90X2NhdGVnb3JpZXNfc2NvcmVfZ3JvdXBzID0gZnVuY3Rpb24oYWdnX3Byb25vdW5fdXNlLHByb25vdW4pewpnZ3Bsb3RseSgKICBnZ3Bsb3QoYWdnX3Byb25vdW5fdXNlLCBhZXNfc3RyaW5nKHggPSAic2NvcmVfZ3JvdXAiLCB5ID0gcGFzdGUoImFnZ18iLHRvbG93ZXIocHJvbm91biksc2VwPSIiKSwgbmFtZSA9ICJzdWJyZWRkaXQiLCBjb2xvciA9ICJhbGxfdG9waWNzIikpICsKICBnZW9tX3BvaW50KGFlcyhzaXplID0gdG90YWxfY29tbWVudHMpKQopCiAgfQoKcGxvdF9jYXRlZ29yaWVzX3Njb3JlX2dyb3VwcyhhZ2dfcHJvbm91bl91c2UsIkkiKQpwbG90X2NhdGVnb3JpZXNfc2NvcmVfZ3JvdXBzKGFnZ19wcm9ub3VuX3VzZSwiTWUiKQpwbG90X2NhdGVnb3JpZXNfc2NvcmVfZ3JvdXBzKGFnZ19wcm9ub3VuX3VzZSwiV2UiKQpwbG90X2NhdGVnb3JpZXNfc2NvcmVfZ3JvdXBzKGFnZ19wcm9ub3VuX3VzZSwiVXMiKQpwbG90X2NhdGVnb3JpZXNfc2NvcmVfZ3JvdXBzKGFnZ19wcm9ub3VuX3VzZSwiVGhleSIpCnBsb3RfY2F0ZWdvcmllc19zY29yZV9ncm91cHMoYWdnX3Byb25vdW5fdXNlLCJUaGVtIikKcGxvdF9jYXRlZ29yaWVzX3Njb3JlX2dyb3VwcyhhZ2dfcHJvbm91bl91c2UsIllvdSIpCgoKCgoKYGBgCgoKCiMjIEFuYWx5c2lzIGJ5IHNjb3JlIChub3QgZ3JvdXApCgojQmFzZSByYXRlcyBhY3Jvc3Mgc3VicmVkZGl0cwoKCmBgYHtyfQpwcm9ub3VuX3NvdXJjZSA8LSBjb2xsZWN0aXZlX3Byb25vdW5fYnlfc2NvcmUgJT4lCiAgZmlsdGVyKHNjb3JlIDwgNTApICMlPiUKICAjZmlsdGVyKGdyZXBsKCJMaWZlc3R5bGUiLCBhbGxfdG9waWNzKSkgCgojZm9yIHByb25vdW4gaW4gYygiaW5kaXZpZHVhbCIsICJjb2xsZWN0aXZlIikKZ2dwbG90bHkoCiAgZ2dwbG90KHByb25vdW5fc291cmNlLCBhZXNfc3RyaW5nKHggPSAic2NvcmUiLCB5ID0gIlpOY29sbGVjdGl2ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gInN1YnJlZGRpdCIpKSArIGdlb21fc21vb3RoKGFlcyhzaXplID0gbnVtX2NvbW1lbnRzKSkKICApCgpnZ3Bsb3RseSgKICBnZ3Bsb3QocHJvbm91bl9zb3VyY2UsIGFlc19zdHJpbmcoeCA9ICJzY29yZSIsIHkgPSAiWk5pbmRpdmlkdWFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAic3VicmVkZGl0IiwgY29sb3IgPSAiYWxsX3RvcGljcyIpKSArIGdlb21fc21vb3RoKGFlcyhzaXplID0gbnVtX2NvbW1lbnRzKSkKICApCmBgYAoKbGFyZ2Ugc3VicwoKYGBge3J9CmxhcmdlX3N1YnJlZGRpdHMgPC0gY29sbGVjdGl2ZV9wcm9ub3VuX2J5X3Njb3JlICU+JQogIGZpbHRlcigKICAgIHNjb3JlID4xMDAwLCBudW1fY29tbWVudHMgPiAxMAogICkgJT4lIHNlbGVjdChzdWJyZWRkaXQpCmxhcmdlX3N1YnJlZGRpdHMgPC0gbGFyZ2Vfc3VicmVkZGl0c1ssMSxkcm9wID0gVFJVRV0KCmBgYAoKCiMjUE9UNgpgYGB7cn0KY29sbGVjdGl2ZV9wcm9ub3VuX2J5X3Njb3JlICU+JQogIGZpbHRlcihzdWJyZWRkaXQgJWluJSBsYXJnZV9zdWJyZWRkaXRzKSAlPiUKICAjZmlsdGVyKGdyZXBsKCJTb2NjZXIiLCBhbGxfdG9waWNzKSkgJT4lCiAgZmlsdGVyKHNjb3JlPDI1KSAlPiUKICBmaWx0ZXIoIXRvcGljX2xldmVsMSAlaW4lIGMoIkFkdWx0IGFuZCBOU0ZXIiwiQXJjaGl0ZWN0dXJlIiwiQXJ0IiksCiAgICAgICAgICFpcy5uYSh0b3BpY19sZXZlbDEpKSAlPiUKICBncm91cF9ieShzY29yZQogICAgICAgICAgICx0b3BpY19sZXZlbDEKICAgICAgICAgICApICU+JQogIHN1bW1hcmlzZSgKICAgIGNvbGxlY3RpdmUgPSBzdW0oWk5jb2xsZWN0aXZlKm51bV9jb21tZW50cykvc3VtKG51bV9jb21tZW50cyksCiAgICBpbmRpdmlkdWFsID0gc3VtKFpOaW5kaXZpZHVhbCpudW1fY29tbWVudHMpL3N1bShudW1fY29tbWVudHMpLAogICAgbnVtX2NvbW1lbnRzID0gc3VtKG51bV9jb21tZW50cykKICApICU+JSAKICBnZ3Bsb3QoKSsgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gMCkgKyBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSAxKSArCiAgZ2VvbV9wb2ludChhZXMoc2NvcmUsY29sbGVjdGl2ZSxjb2xvciA9ICJjb2xsZWN0aXZlIixzaXplID0gbnVtX2NvbW1lbnRzKSkrCiAgZ2VvbV9wb2ludChhZXMoc2NvcmUsaW5kaXZpZHVhbCxjb2xvciA9ICJpbmRpdmlkdWFsIixzaXplID0gbnVtX2NvbW1lbnRzKSkrCiAgdGhlbWVfY2xhc3NpYygpICsKICBmYWNldF93cmFwKH50b3BpY19sZXZlbDEpICsKICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygtMjAsNTApKSsKICBsYWJzKHRpdGxlID0gIlByb25vdW4gVXNlIGJ5IFNjb3JlIG9mIHRoZSBDb21tZW50IGluIERpZmZlcmVudCBDYXRlZ29yaWVzIG9mIFN1YnJlZGRpdHMiICwKICAgICAgIHN1YnRpdGxlID0gIlByb25vdW4gdXNlIG5vcm1hbGl6ZWQgYmFzZWQgb24gY29tbWVudHMgd2l0aCBzY29yZSAxIiwKICAgICAgIGNhcHRpb24gPSAiIikgKyB4bGFiKCJDb21tZW50IFNjb3JlIikgKyB5bGFiKCJQZXJjZW50YWdlIGNoYW5nZSBpbiB0aGUgcHJvcG9ydGlvbiBvZiBjb21tZW50cyB3aXRoIHByb25vdW5cbiAoY29tcGFyZWQgdG8gY29tbWVudHMgd2l0aCBzY29yZSAxKSIpIAoKY29sbGVjdGl2ZV9wcm9ub3VuX2J5X3Njb3JlICU+JQogIGZpbHRlcihzdWJyZWRkaXQgJWluJSBsYXJnZV9zdWJyZWRkaXRzKSAlPiUKICAjZmlsdGVyKGdyZXBsKCJTb2NjZXIiLCBhbGxfdG9waWNzKSkgJT4lCiAgZmlsdGVyKHNjb3JlPDI1KSAlPiUKICBmaWx0ZXIoIXRvcGljX2xldmVsMSAlaW4lIGMoIkFkdWx0IGFuZCBOU0ZXIiwiQXJjaGl0ZWN0dXJlIiwiQXJ0IiksCiAgICAgICAgICFpcy5uYSh0b3BpY19sZXZlbDEpKSAlPiUKICBncm91cF9ieShzY29yZQogICAgICAgICAgICMsdG9waWNfbGV2ZWwxCiAgICAgICAgICAgKSAlPiUKICBzdW1tYXJpc2UoCiAgICBjb2xsZWN0aXZlID0gc3VtKFpOY29sbGVjdGl2ZSpudW1fY29tbWVudHMpL3N1bShudW1fY29tbWVudHMpLAogICAgaW5kaXZpZHVhbCA9IHN1bShaTmluZGl2aWR1YWwqbnVtX2NvbW1lbnRzKS9zdW0obnVtX2NvbW1lbnRzKSwKICAgIG51bV9jb21tZW50cyA9IHN1bShudW1fY29tbWVudHMpCiAgKSAlPiUgCiAgZ2dwbG90KCkrIGdlb21faGxpbmUoeWludGVyY2VwdCA9IDApICsgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gMSkgKwogIGdlb21fcG9pbnQoYWVzKHNjb3JlLGNvbGxlY3RpdmUsY29sb3IgPSAiY29sbGVjdGl2ZSIsc2l6ZSA9IG51bV9jb21tZW50cykpKwogIGdlb21fcG9pbnQoYWVzKHNjb3JlLGluZGl2aWR1YWwsY29sb3IgPSAiaW5kaXZpZHVhbCIsc2l6ZSA9IG51bV9jb21tZW50cykpKwogIHRoZW1lX2NsYXNzaWMoKSArCiAgI2ZhY2V0X3dyYXAofnRvcGljX2xldmVsMSkgKwogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKC0yMCw1MCkpIysKICMgc2NhbGVfeF9sb2cxMCgpCgoKI3dvcmxkbmV3cwoKY29sbGVjdGl2ZV9wcm9ub3VuX2J5X3Njb3JlICU+JQogIGZpbHRlcihzdWJyZWRkaXQgPT0gIndvcmxkbmV3cyIpICU+JQogICNmaWx0ZXIoZ3JlcGwoIlNvY2NlciIsIGFsbF90b3BpY3MpKSAlPiUKICBmaWx0ZXIoc2NvcmU8MjUpICU+JQogIGZpbHRlcighdG9waWNfbGV2ZWwxICVpbiUgYygiQWR1bHQgYW5kIE5TRlciLCJBcmNoaXRlY3R1cmUiLCJBcnQiKSwKICAgICAgICAgIWlzLm5hKHRvcGljX2xldmVsMSkpICU+JQogIGdyb3VwX2J5KHNjb3JlCiAgICAgICAgICAgIyx0b3BpY19sZXZlbDEKICAgICAgICAgICApICU+JQogIHN1bW1hcmlzZSgKICAgIGNvbGxlY3RpdmUgPSBzdW0oWk5jb2xsZWN0aXZlKm51bV9jb21tZW50cykvc3VtKG51bV9jb21tZW50cyksCiAgICBpbmRpdmlkdWFsID0gc3VtKFpOaW5kaXZpZHVhbCpudW1fY29tbWVudHMpL3N1bShudW1fY29tbWVudHMpLAogICAgbnVtX2NvbW1lbnRzID0gc3VtKG51bV9jb21tZW50cykKICApICU+JSAKICBnZ3Bsb3QoKSsgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gMCkgKyBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSAxKSArCiAgZ2VvbV9wb2ludChhZXMoc2NvcmUsY29sbGVjdGl2ZSxjb2xvciA9ICJjb2xsZWN0aXZlIixzaXplID0gbnVtX2NvbW1lbnRzKSkrCiAgZ2VvbV9wb2ludChhZXMoc2NvcmUsaW5kaXZpZHVhbCxjb2xvciA9ICJpbmRpdmlkdWFsIixzaXplID0gbnVtX2NvbW1lbnRzKSkrCiAgdGhlbWVfY2xhc3NpYygpICsKICAjZmFjZXRfd3JhcCh+dG9waWNfbGV2ZWwxKSArCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoLTIwLDUwKSkjKwpgYGAKCmBgYHtyfQp3ZWlyZCA8LSBzY2FsZXM6OnRyYW5zX25ldygic2lnbmVkX2xvZyIsCiAgICAgICB0cmFuc2Zvcm09ZnVuY3Rpb24oeCkgc2lnbih4KSpsb2coYWJzKHgpKSwKICAgICAgIGludmVyc2U9ZnVuY3Rpb24oeCkgc2lnbih4KSpleHAoYWJzKHgpKSkKCmNvbGxlY3RpdmVfcHJvbm91bl9ieV9zY29yZSAlPiUKICAjZmlsdGVyKGdyZXBsKCJTcG9ydHMiLCBhbGxfdG9waWNzKSkgJT4lCiAgZmlsdGVyKHNjb3JlPDEwMCwgc2NvcmUgPiAwKSU+JQogIGZpbHRlcighdG9waWNfbGV2ZWwxICVpbiUgYygiQWR1bHQgYW5kIE5TRlciLCJBcmNoaXRlY3R1cmUiLCJBcnQiKSwKICAgICAgICAgIWlzLm5hKHRvcGljX2xldmVsMSkpICU+JQogIGdyb3VwX2J5KHNjb3JlCiAgICAgICAgICAgIywgdG9waWNfbGV2ZWwxCiAgICAgICAgICAgKSU+JQogIHN1bW1hcmlzZSgKICAgIG51bV9jb21tZW50cyA9IHN1bShudW1fY29tbWVudHMpCiAgICAKICAgIAogICkgJT4lCiAgZ2dwbG90KCkrIAogIGdlb21fcG9pbnQoYWVzKHNjb3JlLG51bV9jb21tZW50cykpKyBzY2FsZV95X2xvZzEwKG5hbWUgPSAiTnVtYmVyIG9mIGNvbW1lbnRzIHBlciBzY29yZSAobG9nMTAgc2NhbGUpIiAsYnJlYWtzID0gYygxMDAwMDAwLDEwMDAwMDAwLDEwMDAwMDAwMCwxMDAwMDAwMDAwKSxsYWJlbHMgPSBzY2FsZXM6OmNvbW1hKSsgc2NhbGVfeF9jb250aW51b3VzKHRyYW5zID0gd2VpcmQsIG5hbWUgPSAiU2NvcmUgKGxvZzEwIHNjYWxlKSIsYnJlYWtzID0gYygxLDUsMTAsMjUsNTAsNzUsMTAwKSxsYWJlbHMgPSBzY2FsZXM6OmNvbW1hKSArIHRoZW1lX2xpbmVkcmF3KCkKYGBgClNpemUgb2Ygc3VicmVkZGl0IHZzLiBzY29yZS1wcm9ub3VuIHJlbGF0aW9uCgpgYGB7cn0KCmNvbGxlY3RpdmVfcHJvbm91bl9ieV9zY29yZSAlPiUKICBmaWx0ZXIoc2NvcmUgPT0gNTApICU+JQogIGdncGxvdChhZXMobnVtX2NvbW1lbnRzLFpOY29sbGVjdGl2ZSkpK2dlb21fcG9pbnQoKSsKICAjZ2VvbV9zbW9vdGgoKSsKICBzY2FsZV94X2xvZzEwKCkrc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoLTEwMCwyNTApKSsgZmFjZXRfd3JhcCh+IHRvcGljX2xldmVsMSkKYGBgCgo=